from urllib import request,parse
from ua_info import ua_list
import time
import random

# 爬虫类
class TiebaSpider(object):
    # 初始化URL
    def __init__(self):
        self.url = 'http://tieba.baidu.com/f?{}'

    # 请求函数
    def get_html(self, url):
        req = request.Request(url,headers={'User-Agent':random.choice(ua_list)})
        res = request.urlopen(req)
        html = res.read().decode('gbk','ignore')
        return html

    # 解析函数
    def parse_html(self, html):
        pass

    # 保存函数
    def save_html(self, filename,html):
        with open(filename, 'w') as f:
            f.write(html)

    #入口函数
    def run(self):
        name = input("请输入贴吧名：")
        begin = int(input("请输入起始页："))
        end = int(input("请输入结束页："))

        for page in range(begin,end+1):
            pn = (page-1)*50
            params = {
                'kw': name,
                'pn': str(pn),
            }
            #拼接url
            params = parse.urlencode(params)
            url = self.url.format(params)
            # 定义文件名（路径）
            filename= '{}-{}页.html'.format(name,page)
            self.save_html(filename,self.get_html(url))
            #提示信息
            print("第{}页抓取成功！".format(page))

            #暂停一段时间 s
            time.sleep(random.randint(1,2))

#以脚本的形式启动
if __name__ == '__main__':
    start = time.time()
    # 实例化一个爬虫对象
    spider = TiebaSpider()
    #调用入口函数
    spider.run()

    end = time.time()

    print("执行时间：%.2f" %(end-start))

